1. Field of the Invention
The present invention relates to the transmission of data which require integrity assurance, data authenticity verification, or to generate a condensed version—or the “fingerprint”—of a message. In particular, a system and method of digital hardware resources of the FIPS PUB 180-1 Secure Hash Algorithm (SHA-1) that can complete each SHA-1 computation step in a single clock, therefore, completing the SHA-1 on each 512-bit message segment in just 81 clocks.
2. Description of Related Arts One-way hash functions and the related algorithms can be used to address the issues of data integrity assurance, data authenticity verification, or generating a condensed “message digest” or “fingerprint” representation of a message. The Secure Hash Algorithm (SHA-1) is designed to produce, with very high probability, a unique 160-bit message digest for any message. When combined with DSA (Digital Signature Algorithm, FIPS PUB 186), the SHA-1 can assist in detecting unauthorized alteration of a message sent over a network by verifying the received signature—which was computed with the message digest of the original message—against the signature computed with the message digest of the received message. The following is quoted from FIPS PUB 180-1: “SHA-1 is called secure because it is computationally infeasible to find a message which corresponds to a given message digest, or to find two different messages which produce the same message. Any change to a message in transit will, with very high probability, result in a different message digest, and the signature will fail to verify”.
Past practices of implementing SHA-1 in software have the disadvantage of slow performance; large amount of software codes must be used to perform computation, manage system resources, control program flow, and generating and reusing working data. Taking the case of an expression TEMP=S5(a)+Ft(b,c,d)+e+Wt+Kt, each logical operation may take-up several instructions, more than a hundred clock cycles could be required just to process this single expression by software.